package 力扣;

import java.util.Stack;

/**
 示例 1：

 输入："/home/"
 输出："/home"
 解释：注意，最后一个目录名后面没有斜杠。
 示例 2：

 输入："/../"
 输出："/"
 解释：从根目录向上一级是不可行的，因为根是你可以到达的最高级。
 示例 3：

 输入："/home//foo/"
 输出："/home/foo"
 解释：在规范路径中，多个连续斜杠需要用一个斜杠替换。
 示例 4：

 输入："/a/./b/../../c/"
 输出："/c"
 示例 5：

 输入："/a/../../b/../c//.//"
 输出："/c"
 示例 6：

 输入："/a//b////c/d//././/.."
 输出："/a/b/c"
 */
public class _71简化路径 {

    public String simplifyPath(String path) {

        String[] words= path.split("/");
        Stack<String> stack=new Stack<String>();
        for(String s:words){
            if("".equals(s) || ".".equals(s)||("..".equals(s)&&stack.isEmpty())){
                continue;
            }else if("..".equals(s) &&!stack.isEmpty()){
                stack.pop();
            }else{
                stack.push(s);
            }
        }
        StringBuilder res = new StringBuilder();

        if(stack.isEmpty())
            return "/";
        if(!stack.isEmpty()){
            Object[] a = stack.toArray();
            for (int i = 0; i < a.length; i++) {
                res.append("/"+a[i].toString());
            }
        }
        return res.toString();

    }
}
